<script type="application/json" id="selectors">
        [{
            "selector": "p:not(:nth-last-of-type(3))",
            "match": ["2", "3"]
        },
        {
            "selector": "dl > *:not(:nth-last-of-type(3n+1))",
            "match": ["4", "5", "6", "7", "8", "9", "10", "11"]
        }]
</script>
<div id="testDOM">
    <p id="1" >This paragraph should be unstyled.</p>
    <address>This address should be unstyled.</address>
    <p id="2" class="red">This paragraph should have green background.</p>
    <p id="3" class="red">This paragraph should have green background.</p>
    <dl>
        <dt id="4" class="red">First definition term that should have green background.</dt>
        <dd id="5" class="red">First definition that should also have a green background.</dd>
        <dt id="6" class="red">Second definition term that should have green background.</dt>
        <dd id="7" class="red">Second definition that should have green background.</dd>
        <dt>Third definition term.</dt>
        <dd>Third definition.</dd>
        <dt id="8" class="red">Fourth definition term that should have green background.</dt>
        <dd id="9" class="red">Fourth definition that should have green background.</dd>
        <dt id="10" class="red">Fifth definition term that should have green background.</dt>
        <dd id="11" class="red">Fifth definition that should have green background.</dd>
        <dt>Sixth definition term.</dt>
        <dd>Sixth definition.</dd>
    </dl>
</div>
